iT邦幫忙

2025 iThome 鐵人賽

DAY 19
0

1 | 需求為何?

  • 預防誤刪:改流程改到爆炸,還能回溯。
  • 版本紀錄:每天自動留檔,哪天壞掉對照 JSON 一秒找差異。
  • 搬家超快:換伺服器直接匯入備份,一鍵復活。

2 | 5 個基本節點

節點 作用 核心設定
Schedule 每日 02:00 觸發 Every day → 02:00
HTTP Request 取全部 Workflow 列表 GET http://localhost:5678/rest/workflowsAuth:Username=n8n登入 email;Password=API Key
Code 逐一抓 JSON 並組檔 直接貼下方 JS
GitHub 上傳檔案 用 Personal Access Token;File Path:backup/workflows-{{ $moment().format('YYYYMMDD') }}.json
IF (可選) 檢查 HTTP 失敗 Status ≠ 200 → Slack/Email 報錯

Code 節點內容(全貼):

const base = 'http://localhost:5678/rest/workflows';
const auth = { user: 'YOUR_EMAIL', pass: 'YOUR_API_KEY' };

let list = await $request({ url: base, method: 'GET', auth });
let files = [];

for (const wf of list.data) {
  let full = await $request({ url: `${base}/${wf.id}`, method: 'GET', auth });
  files.push({ name: wf.name + '.json', content: full.data });
}

return [{
  json: {
    path: `backup/workflows-${$moment().format('YYYYMMDD')}.json`,
    content: JSON.stringify(files, null, 2)
  }
}];


3 | 最簡化憑證做法

  1. GitHub 上 Settings → Developer settings → Personal access tokens
  2. 產生 Token,只勾 repo → 複製。
  3. n8n 建立 GitHub Credentials → Access Token,貼剛剛那串。
  4. GitHub 節點裡,直接輸入:
    • Repository Owner: '你的帳號'
    • Repository Name: 'n8n-backups'

(不依賴下拉選單,100% 不會抓不到)


4 | 一鍵測試

  • Code 節點 → Execute Step
    • Console 顯示 backup/workflows-20251003.json 即產檔成功
  • 再點 GitHub 節點 → Execute Step
    • GitHub repo 多了一個檔,備份完成

5 | 日後維護 2 招

  1. 偶爾打開 GitHub 看今天檔案有沒有更新。
  2. n8n 紅色警告先看必填欄——通常是路徑、內容或權限漏填。


上一篇
Day 18 :讓監控更精準!用 IF 節點實現「特定代幣」過濾告警
下一篇
Day 20:告別手動複製貼上!n8n 自動化你的每日站會紀錄
系列文
「解放自動化新利器!深入了解 n8n 如何助你輕鬆打造專屬工作流程」20
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言